package com.sunday.electric.receiver;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;

import com.igexin.sdk.PushConsts;
import com.sunday.electric.ui.MainActivity;
import com.sunday.electric.R;
import com.sunday.electric.utils.SharePerferenceUtils;


/**
 * Created by Administrator on 2015/8/25.
 */
public class PushReceiver extends BroadcastReceiver{
    protected static int notifyID = 0525; // start notification id
    //private Gson gson = new Gson();
    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
       // Logger.d("GetuiSdkDemo", "onReceive() action=" + bundle.getInt("action"));
        switch (bundle.getInt(PushConsts.CMD_ACTION)) {
            //添加其他case
            //.........
            case PushConsts.GET_CLIENTID:
                // 获取ClientID(CID)
                String cid = bundle.getString("clientid");
               // Logger.d("GetuiSdkDemo", "Got ClientID:" + cid);
                boolean isLogin = SharePerferenceUtils.getIns().getBoolean("is_login",false);
                if(!isLogin){
                    return ;
                }
               // BaseApplication.getInstance().autoLogin();
                /* 第三方应用需要将ClientID上传到第三方服务器，并且将当前用户帐号和ClientID进行关联，
                以便以后通过用户帐号查找ClientID进行消息推送。有些情况下ClientID可能会发生变化，为保证获取最新的ClientID，
                请应用程序在每次获取ClientID广播后，都能进行一次关联绑定 */
               // ApiClient.getApiService().updateToken(cid,"1");

                break;
            case PushConsts.GET_MSG_DATA:
                byte[] payload = bundle.getByteArray("payload");
                if (payload != null) {
                    String data = new String(payload);

                    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
                    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
                    String  packageName = context.getApplicationInfo().packageName;
                    intent = new Intent(context,MainActivity.class);
                    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
                    mBuilder.setContentTitle("呼有")//设置通知栏标题
                            .setContentText(  "")
                            .setContentIntent(pendingIntent) //设置通知栏点击意图
//	.                   setNumber(number) //设置通知集合的数量
                        .setTicker("数字城市") //通知首次出现在通知栏，带上升动画效果的
                        .setWhen(System.currentTimeMillis())//通知产生的时间，会在通知信息里显示，一般是系统获取到的时间
                        .setPriority(Notification.PRIORITY_DEFAULT) //设置该通知优先级
	.                   setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消
                        .setOngoing(false)//ture，设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
                        .setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置，使用defaults属性，可以组合
                                //Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission
                        .setSmallIcon(R.mipmap.ic_launcher);//设置通知小ICON
                    mNotificationManager.notify(notifyID, mBuilder.build());
                }
                break;
            default:
                break;
        }
    }
}
